CustomDocumentProperties
Otázka od: Tomas Folprecht
18. 9. 2002 11:29
Dobry den,
rad bych pozadal o radu.
Nevim, jak ve wordovskem dokumentu ovladanem pres TWordDocument z Delphi 5
nastavovat vlastnosti dokumentu, jako nazev,
autor, spolecnost....
TWordDocument obsahuje "CustomDocumentProperties" a
"BuiltInDocumentProperties", to bude asi ono, ale vubec nevim, jak k
nim pristupovat. Jsou typu IDispatch a ja bohuzel nevim, co to je.
Dekuji za kazdou radu
Tomas
Odpovedá: Tomas Folprecht
23. 9. 2002 15:23
Prominte, ze se znovu pripominam, opravdu mi nikdo nemuzete ani malinko
napovedet, kterym smerem se ubirat?
Moc by mi to pomohlo.
Tomas
> -----Original Message-----
> From: Tomas Folprecht [mailto:tomas@apkfolprecht.cz]
> Sent: Wednesday, September 18, 2002 11:53 AM
>
> Dobry den,
>
> rad bych pozadal o radu.
> Nevim, jak ve wordovskem dokumentu ovladanem pres TWordDocument z Delphi 5
nastavovat vlastnosti dokumentu,
> jako nazev, autor, spolecnost....
> TWordDocument obsahuje "CustomDocumentProperties" a
"BuiltInDocumentProperties", to bude asi ono, ale vubec
> nevim, jak k nim pristupovat. Jsou typu IDispatch a ja bohuzel nevim, co to
je.
>
> Dekuji za kazdou radu
>
> Tomas Folprecht
Odpovedá: Martin Schayna
23. 9. 2002 17:08
----- Original Message -----
From: "Tomas Folprecht" <tomas@apkfolprecht.cz>
> TWordDocument obsahuje "CustomDocumentProperties" a
> "BuiltInDocumentProperties", to bude asi ono, ale vubec nevim, jak k
> nim pristupovat. Jsou typu IDispatch a ja bohuzel nevim, co to je.
Z napovedy pro Microsoft Visual Basic pro Word:
BuiltInDocumentProperties Property
Returns a DocumentProperties collection that represents all the
built-in document properties for the specified document. Read-only.
To return a single DocumentProperty object that represents a specific
built-in document property, use BuiltinDocumentProperties(index),
where index is one of the following WdBuiltInProperty constants.
wdPropertyAppName
wdPropertyAuthor
wdPropertyBytes
wdPropertyCategory
wdPropertyCharacters
wdPropertyCharsWSpaces
wdPropertyComments
wdPropertyCompany
wdPropertyFormat
wdPropertyHiddenSlides
wdPropertyHyperlinkBase
wdPropertyKeywords
wdPropertyLastAuthor
wdPropertyLines
wdPropertyManagerwdPropertyMMClips
wdPropertyNotes
wdPropertyPages
wdPropertyParas
wdPropertyRevision
wdPropertySecurity
wdPropertySlides
wdPropertySubject
wdPropertyTemplate
wdPropertyTimeCreated
wdPropertyTimeLastPrinted
wdPropertyTimeLastSaved
wdPropertyTitle
wdPropertyVBATotalEdit
wdPropertyWords
Use the CustomDocumentProperties property to
return the collection of custom document properties.
Martin Schayna
Odpovedá: Tomas Folprecht
24. 9. 2002 7:08
Ja mnohokrat dekuji za pomoc. Tohle jsem jiz nasel take, ale problem je v tom,
jak k se k tomu dostat z Delphi. Tam to
tak jednoduche neni.
Tomas
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
> Behalf Of Martin Schayna
> Sent: Monday, September 23, 2002 4:43 PM
> To: delphi-l@clexpert.cz
> Subject: Re: CustomDocumentProperties
>
>
> ----- Original Message -----
> From: "Tomas Folprecht" <tomas@apkfolprecht.cz>
> > TWordDocument obsahuje "CustomDocumentProperties" a
> > "BuiltInDocumentProperties", to bude asi ono, ale vubec nevim, jak k
> > nim pristupovat. Jsou typu IDispatch a ja bohuzel nevim, co to je.
>
> Z napovedy pro Microsoft Visual Basic pro Word:
>
> BuiltInDocumentProperties Property
>
> Returns a DocumentProperties collection that represents all the
> built-in document properties for the specified document. Read-only.
>
> To return a single DocumentProperty object that represents a specific
> built-in document property, use BuiltinDocumentProperties(index),
> where index is one of the following WdBuiltInProperty constants.
>
> wdPropertyAppName
> wdPropertyAuthor
> wdPropertyBytes
> wdPropertyCategory
> wdPropertyCharacters
> wdPropertyCharsWSpaces
> wdPropertyComments
> wdPropertyCompany
> wdPropertyFormat
> wdPropertyHiddenSlides
> wdPropertyHyperlinkBase
> wdPropertyKeywords
> wdPropertyLastAuthor
> wdPropertyLines
> wdPropertyManagerwdPropertyMMClips
> wdPropertyNotes
> wdPropertyPages
> wdPropertyParas
> wdPropertyRevision
> wdPropertySecurity
> wdPropertySlides
> wdPropertySubject
> wdPropertyTemplate
> wdPropertyTimeCreated
> wdPropertyTimeLastPrinted
> wdPropertyTimeLastSaved
> wdPropertyTitle
> wdPropertyVBATotalEdit
> wdPropertyWords
>
> Use the CustomDocumentProperties property to
> return the collection of custom document properties.
>
> Martin Schayna
>
Odpovedá: ing. Jan Fiala
24. 9. 2002 9:11
Zkus tohle:
var
docprop: Variant;
begin
docprop := WordDocument.CustomDocumentProperties;
pak uz k tomu pristupujes pres
docprop.
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
24.9.2002 Tomas Folprecht:
> Ja mnohokrat dekuji za pomoc. Tohle jsem jiz nasel take, ale problem
> je v tom, jak k se k tomu dostat z Delphi. Tam to tak jednoduche
> neni.
Odpovedá: Tomas Folprecht
24. 9. 2002 10:45
Tomu vubec nerozumim. Porad neumim nastavovat jednotlive wordowske proprty.
Neumim ani napsat kod, ktery by se tvaril,
ze to bude delat a sel by zkompilovat.
Predstavovat bych si, ze napisu neco jako:
WordDocument.CustomDocumentProperties('Císlo dokumentu') := 123
ale to jsem teda dost naivni.
Tomas
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On Behalf
Of ing. Jan Fiala
> Sent: Tuesday, September 24, 2002 8:20 AM
> To: delphi-l@clexpert.cz
> Subject: Re: CustomDocumentProperties
>
>
> Zkus tohle:
>
> var
> docprop: Variant;
> begin
> docprop := WordDocument.CustomDocumentProperties;
>
> pak uz k tomu pristupujes pres
> docprop.
>
> --
> ing. Jan Fiala
> mailto:jan.fiala@iol.cz
>
> 24.9.2002 Tomas Folprecht:
> > Ja mnohokrat dekuji za pomoc. Tohle jsem jiz nasel take, ale problem
> > je v tom, jak k se k tomu dostat z Delphi. Tam to tak jednoduche
> > neni.
>
>
>
Odpovedá: ing. Jan Fiala
24. 9. 2002 11:13
24.9.2002 Tomas Folprecht:
> Tomu vubec nerozumim. Porad neumim nastavovat jednotlive wordowske proprty.
Neumim ani napsat kod, ktery by se tvaril,
> ze to bude delat a sel by zkompilovat.
> Predstavovat bych si, ze napisu neco jako:
> WordDocument.CustomDocumentProperties('Císlo dokumentu') := 123
> ale to jsem teda dost naivni.
Ten kod dole nechodi ?
Proste musis interface priradit do nejake promenne a s ni pak
pracovat. Primo to nejde.
>> Zkus tohle:
>>
>> var
>> docprop: Variant;
>> begin
>> docprop := WordDocument.CustomDocumentProperties;
>>
>> pak uz k tomu pristupujes pres
>> docprop.
>>
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
Odpovedá: Jan Sebelík
24. 9. 2002 17:42
> Odesílatel: Tomas Folprecht <tomas@apkfolprecht.cz>
> Ja mnohokrat dekuji za pomoc. Tohle jsem jiz nasel take, ale problem je v
tom, jak k se k tomu dostat z Delphi. Tam to
> tak jednoduche neni.
Ja tedy vubec neznam interface do Wordu. Ale pokud dostanu jakykoli interface
(staci IDispatch, CreateOLEObject), tak uz volam vsechny metody bez problemu.
(No, pokud je to jenom trochu mozne, tak bych se vyhnul pouziti typu Variant.)
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================
Odpovedá: Tomas Folprecht
24. 9. 2002 14:49
No dobra, mam odkaz na Word.....Properties v promenne typu Variant, ale to je
nejaka Visual Basicovska Collection. Jak
z ni vytahnout jeden prvek?
Asi jsem dost natvrdly, co?
Tomas
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On Behalf
Of ing. Jan Fiala
> Sent: Tuesday, September 24, 2002 11:47 AM
> To: delphi-l@clexpert.cz
> Subject: Re: CustomDocumentProperties
>
>
>
> 24.9.2002 Tomas Folprecht:
> > Tomu vubec nerozumim. Porad neumim nastavovat jednotlive wordowske proprty.
Neumim ani napsat kod, ktery by
> se tvaril,
> > ze to bude delat a sel by zkompilovat.
> > Predstavovat bych si, ze napisu neco jako:
>
> > WordDocument.CustomDocumentProperties('Císlo dokumentu') := 123
>
> > ale to jsem teda dost naivni.
>
> Ten kod dole nechodi ?
> Proste musis interface priradit do nejake promenne a s ni pak
> pracovat. Primo to nejde.
>
>
> >> Zkus tohle:
> >>
> >> var
> >> docprop: Variant;
> >> begin
> >> docprop := WordDocument.CustomDocumentProperties;
> >>
> >> pak uz k tomu pristupujes pres
> >> docprop.
> >>
>
> --
> ing. Jan Fiala
> mailto:jan.fiala@iol.cz
Odpovedá: ing. Jan Fiala
24. 9. 2002 17:05
K te kolekci pristupujes prave pres tu promennou. Takze misto abys
psal
WordDocument.CustomDocumentProperties()
zkus napsat
promenna.neco(....)
V lepsim pripade ti to po napsani tecky delphi nabidne properties
--
Jan Fiala
mailto:jan.fiala@iol.cz
24.9.2002 Tomas Folprecht:
> No dobra, mam odkaz na Word.....Properties v promenne typu Variant, ale to
je nejaka Visual Basicovska Collection. Jak
> z ni vytahnout jeden prvek?
> Asi jsem dost natvrdly, co?
Odpovedá: Tomas Folprecht
24. 9. 2002 17:21
Jestli myslis treba takhle:
var V,XX:Variant;
begin
...
V:=WDoc.CustomDocumentProperties;
XX:=V.Item(1);
tak to nechodi.
Nebo jsi to myslel jinak? Nevim totiz, co napsat misto "promenna.neco".
Uz se tim trapim tri dny, zatracene.
Nevite nahodou nekdo, na co je procedure Invoke ? Mam dojem, ze to bude nejak
souviset.
Tomas
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On Behalf
Of ing. Jan Fiala
> Sent: Tuesday, September 24, 2002 12:46 PM
> To: delphi-l@clexpert.cz
> Subject: Re: CustomDocumentProperties
>
>
> K te kolekci pristupujes prave pres tu promennou. Takze misto abys
> psal
> WordDocument.CustomDocumentProperties()
> zkus napsat
> promenna.neco(....)
>
> V lepsim pripade ti to po napsani tecky delphi nabidne properties
>
> --
> Jan Fiala
> mailto:jan.fiala@iol.cz
>
> 24.9.2002 Tomas Folprecht:
> > No dobra, mam odkaz na Word.....Properties v promenne typu Variant, ale
to je nejaka Visual Basicovska
> Collection. Jak
> > z ni vytahnout jeden prvek?
> > Asi jsem dost natvrdly, co?
>
>
>
Odpovedá: Milan Tomes
25. 9. 2002 8:35
var
DocProc: DocumentProperties;
i: integer;
begin
DocProp := WDoc.CustomDocumentProperties as DocumentProperties;
for i := 1 to DocProc.Count do //tady si nejsem jisty indexovanim toho
collection - mozna je to od 0
DocProc........
DocProc := nil;
end;
> var V,XX:Variant;
> begin
> ...
> V:=WDoc.CustomDocumentProperties;
> XX:=V.Item(1);
>
>
> tak to nechodi.
>
> Nevite nahodou nekdo, na co je procedure Invoke ? Mam dojem, ze
> to bude nejak souviset.
Invoke je metoda rozhrani IDispatch a souvisi s automation objekty (slouzi
pro vyvolavani jejich metod). Vice v dokumentaci pro COM
HTH
S pozdravem
Milan Tomes
mailto:milan.tomes@haida.cz
Odpovedá: Tomas Folprecht
25. 9. 2002 12:51
Neexistuje zadny typ DocumentProperties ani TDocumentProperties.
Musim se jeste moooc ucit.
Zkousejte to dal, treba me k reseni dokopete.
Kazdopadne dekuju za solidaritu
Tomas
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On Behalf
Of Milan Tomes
> Sent: Wednesday, September 25, 2002 8:17 AM
> To: delphi-l@clexpert.cz
> Subject: RE: CustomDocumentProperties
>
>
> var
> DocProc: DocumentProperties;
> i: integer;
> begin
> DocProp := WDoc.CustomDocumentProperties as DocumentProperties;
> for i := 1 to DocProc.Count do //tady si nejsem jisty indexovanim toho
> collection - mozna je to od 0
> DocProc........
> DocProc := nil;
> end;
>
> > var V,XX:Variant;
> > begin
> > ...
> > V:=WDoc.CustomDocumentProperties;
> > XX:=V.Item(1);
> >
> >
> > tak to nechodi.
> >
> > Nevite nahodou nekdo, na co je procedure Invoke ? Mam dojem, ze
> > to bude nejak souviset.
>
> Invoke je metoda rozhrani IDispatch a souvisi s automation objekty (slouzi
> pro vyvolavani jejich metod). Vice v dokumentaci pro COM
>
> HTH
>
> S pozdravem
>
> Milan Tomes
> mailto:milan.tomes@haida.cz
>
>
>
Odpovedá: Milan Tomes
25. 9. 2002 17:51
A mas naimportovanou typovou knihovnu ??? Kdyz naomportujes knihovnu
MSWORD9.OLB tak tam tento typ existuje !!!
S pozdravem
Milan Tomes
mailto:milan.tomes@haida.cz
> Neexistuje zadny typ DocumentProperties ani TDocumentProperties.
> Tomas
Odpovedá: Martin Schayna
25. 9. 2002 17:24
----- Original Message -----
From: "Tomas Folprecht" <tomas@apkfolprecht.cz>
> Neexistuje zadny typ DocumentProperties ani TDocumentProperties.
DocumentProperties je typ z typove knihovny Office,
tedy nikoliv z typove knihovny Word. Mozna bude
treba toho vic do Delphi naimportovat.
Napr. ve Wordu tohle funguje normalne:
Public Sub Test()
Dim i As Integer
ActiveDocument.CustomDocumentProperties.Add "Moje", False,
msoPropertyTypeString, "Hodnota"
For i = 1 To ActiveDocument.CustomDocumentProperties.Count
MsgBox ActiveDocument.CustomDocumentProperties.Item(i).Value
Next
End Sub
Martin Schayna
Odpovedá: Milan Tomes
26. 9. 2002 7:00
Omlouvam se, mas pravdu........
Jen dodam, ze prislusna typova knihovna (MSO9.dll) se naimportuje i v
pripade, ze importujes knihovnu Wordu (vznikne soubor Office_TLB.pas)
S pozdravem
Milan Tomes
mailto:milan.tomes@haida.cz
> DocumentProperties je typ z typove knihovny Office,
> tedy nikoliv z typove knihovny Word. Mozna bude
> treba toho vic do Delphi naimportovat.
> Martin Schayna
Odpovedá: Tomas Folprecht
26. 9. 2002 17:12
Aha, ten typ je v unite Office97.pas, takze stacilo ji pridat do uses.
Uz to lze zkompilovat, vypada to smysluplne, ale na radce:
DocProps:= WDoc.CustomDocumentProperties as DocumentProperties;
to vyhodi chybu EIntfCastError "Interface not supported".
Pricemz ve Visual Basicovskym helpu jsem si precetl, ze
Document.CustomDocumentProperties je typu DocumentProperties.
Co s tím?
Tomas Folprecht
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On Behalf
Of Milan Tomes
> Sent: Wednesday, September 25, 2002 2:02 PM
> To: delphi-l@clexpert.cz
> Subject: RE: CustomDocumentProperties
>
>
> A mas naimportovanou typovou knihovnu ??? Kdyz naomportujes knihovnu
> MSWORD9.OLB tak tam tento typ existuje !!!
>
> S pozdravem
>
> Milan Tomes
> mailto:milan.tomes@haida.cz
>
> > Neexistuje zadny typ DocumentProperties ani TDocumentProperties.
> > Tomas
>
>
>
Odpovedá: ing. Jan Fiala
26. 9. 2002 13:07
Zkus si tam doplnit "T" pred to DocumentProperties, cili
DocProps:= WDoc.CustomDocumentProperties as TDocumentProperties;
K tem svym predchozim radam, skutecne jsem nemohl tusit, ze nemas v
USES unitu knihovny
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
26.9.2002 Tomas Folprecht:
> Aha, ten typ je v unite Office97.pas, takze stacilo ji pridat do uses.
> Uz to lze zkompilovat, vypada to smysluplne, ale na radce:
> DocProps:= WDoc.CustomDocumentProperties as DocumentProperties;
> to vyhodi chybu EIntfCastError "Interface not supported".
Odpovedá: Tomas Folprecht
27. 9. 2002 10:07
Kdepak:
Undeclared identifier: 'TDocumentProperties'.
Jdu badat dal.
Tomas Folprecht
PS: K te unite: kdyz jsem si dal na form komponentu TWordDocument, myslel jsem,
ze se tam doplni potrebne unity
automaticky. Zmylil jsem se. Ma chyba.
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On Behalf
Of ing. Jan Fiala
> Sent: Thursday, September 26, 2002 2:07 PM
> To: delphi-l@clexpert.cz
> Subject: Re: CustomDocumentProperties
>
>
> Zkus si tam doplnit "T" pred to DocumentProperties, cili
> DocProps:= WDoc.CustomDocumentProperties as TDocumentProperties;
>
> K tem svym predchozim radam, skutecne jsem nemohl tusit, ze nemas v
> USES unitu knihovny
>
> --
> ing. Jan Fiala
> mailto:jan.fiala@iol.cz
>
> 26.9.2002 Tomas Folprecht:
> > Aha, ten typ je v unite Office97.pas, takze stacilo ji pridat do uses.
> > Uz to lze zkompilovat, vypada to smysluplne, ale na radce:
> > DocProps:= WDoc.CustomDocumentProperties as DocumentProperties;
> > to vyhodi chybu EIntfCastError "Interface not supported".
>
>
>